package com.easysoft.commons.utils;

/**
 * ObjectUtils 对象处理函数类
 * 
 * @author try
 * @version 1.0
 */
public final class ObjectUtils {

	private ObjectUtils() {
	}

	/**
	 * 将 Object 转换成 int <br>
	 * ObjectUtils.toInt(null) = 0 ;<br>
	 * ObjectUtils.toInt("") = 0 ;<br>
	 * ObjectUtils.toInt("1") = 1;
	 * 
	 * @param obj
	 *            Object 对象
	 * @return int
	 */
	public static int toInt(Object obj) {
		return toInt(obj, 0);
	}

	/**
	 * 将 Object 转换成 int <br>
	 * ObjectUtils.toInt(null, 9) = 9 ;<br>
	 * ObjectUtils.toInt("", 9) = 9 ;<br>
	 * ObjectUtils.toInt("1", 9) = 1;
	 * 
	 * @param obj
	 *            Object 对象
	 * @param def
	 *            默认值，如果 Object 无法转换为 int 则返回默认值
	 * @return int
	 */
	public static int toInt(Object obj, int def) {
		if (obj == null) {
			return def;
		}

		try {
			return Integer.parseInt(obj.toString());
		}
		catch (Exception e) {
		}

		return def;
	}

	/**
	 * 将 Object 转换成 long <br>
	 * ObjectUtils.toLong(null, 9) = 9 ;<br>
	 * ObjectUtils.toLong("", 9) = 9 ;<br>
	 * ObjectUtils.toLong("1", 9) = 1;
	 * 
	 * @param obj
	 *            Object 对象
	 * @param def
	 *            默认值，如果 Object 无法转换为 long 则返回默认值
	 * @return int
	 */
	public static long toLong(Object obj, long def) {
		if (obj == null) {
			return def;
		}

		try {
			return Long.parseLong(obj.toString());
		}
		catch (Exception e) {
		}

		return def;
	}

	/**
	 * 将 Object 转换成 String <br>
	 * ObjectUtils.toInt(null) = "" ;<br>
	 * ObjectUtils.toInt("a") = "a" ;
	 * 
	 * @param obj
	 *            Object 对象
	 * @return int
	 */
	public static String toString(Object obj) {
		return toString(obj, "");
	}

	/**
	 * 将 Object 转换成 String <br>
	 * ObjectUtils.toString(null, "a") = "a" ;<br>
	 * ObjectUtils.toString("b", "a") = "b";
	 * 
	 * @param obj
	 *            Object 对象
	 * @param def
	 *            默认值，如果 Object 无法转换为 String 则返回默认值
	 * @return int
	 */
	public static String toString(Object obj, String def) {
		if (obj == null) {
			return def;
		}
		return obj.toString();
	}

}
